package com.cn.serverline.lineicp.workshopPlan.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.EqualsAndHashCode;
import lombok.Data;
import java.sql.Timestamp;

/**
 * 周部装组件拆分表
 *
 * @author 田江余
 * @since 2024-08-12
 */
@TableName("PLAN_LINE_ASSEMBLE_SPLIT")
@Data
@EqualsAndHashCode
public class PlanLineAssembleSplit implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @ChineseDescription("主键ID")
    @TableId(value = "ID", type = IdType.ASSIGN_ID)
    @JsonSerialize(using= ToStringSerializer.class)
    private Long id;

    /**
     * 周计划详情
     */
    @ChineseDescription("周计划详情")
    @TableField("PLAN_WEEK_STAGE_DAYS_TASKS_ID")
    @JsonSerialize(using= ToStringSerializer.class)
    private Long planWeekStageDaysTasksId;

    /**
     * 零组件ID
     */
    @ChineseDescription("零组件ID")
    @TableField("MST_SPARE_PARTS_ID")
    @JsonSerialize(using= ToStringSerializer.class)
    private Long mstSparePartsId;

    /**
     * 产品构型ID
     */
    @ChineseDescription("产品构型ID")
    @TableField("PROD_CONFIGURATION_ID")
    @JsonSerialize(using= ToStringSerializer.class)
    private Long prodConfigurationId;

    /**
     * 工艺路线ID
     */
    @ChineseDescription("工艺路线ID")
    @TableField("PROC_PROCESS_LINE_ID")
    @JsonSerialize(using= ToStringSerializer.class)
    private Long procProcessLineId;

    /**
     * 是否是实际生产批次0：否 1：是
     */
    @ChineseDescription("是否是实际生产批次0：否 1：是")
    @TableField("ACTUAL_PRODUCTION_BATCH")
    @JsonSerialize(using= ToStringSerializer.class)
    private Long actualProductionBatch;

    /**
     * 构型选择时间
     */
    @ChineseDescription("构型选择时间")
    @TableField("PROD_CONFIGURATION_CHOOSE_TIME")
    private Timestamp prodConfigurationChooseTime;

    /**
     * 排产状态
     */
    @ChineseDescription("排产状态")
    @TableField("PRODUCE_SCHEDULED")
    @JsonSerialize(using= ToStringSerializer.class)
    private Long produceScheduled;

    /**
     * 批次号
     */
    @ChineseDescription("批次号")
    @TableField("BATCH_NUMBER")
    private String batchNumber;

    /**
     * 物料在库情况
     */
    @ChineseDescription("物料在库情况")
    @TableField("STOCK_SITUATION")
    @JsonSerialize(using= ToStringSerializer.class)
    private Long stockSituation;

    /**
     * 乐观锁
     */
    @ChineseDescription("乐观锁")
    @TableField("VERSION")
    @JsonSerialize(using= ToStringSerializer.class)
    private Long version;

    /**
     * 创建人
     */
    @ChineseDescription("创建人")
    @TableField("CREATE_USER")
    @JsonSerialize(using= ToStringSerializer.class)
    private Long createUser;

    /**
     * 创建时间
     */
    @ChineseDescription("创建时间")
    @TableField("CREATE_TIME")
    private Timestamp createTime;

    /**
     * 最后修改人
     */
    @ChineseDescription("最后修改人")
    @TableField("UPDATE_USER")
    @JsonSerialize(using= ToStringSerializer.class)
    private Long updateUser;

    /**
     * 最后修改时间
     */
    @ChineseDescription("最后修改时间")
    @TableField("UPDATE_TIME")
    private Timestamp updateTime;

    /**
     * 备注
     */
    @ChineseDescription("备注")
    @TableField("REMARK")
    private String remark;
}
